#e
#Title[֒euj̐l`v]
#Text[]
#Image[]
#BackGround[]
#PlayLevel[]
#Player[FREE]
#ScriptVersion[2]

script_enemy DOLL1
{
#include_function ".\th[.txt"


	//ʒu
	let xini    =GetX;
	let yini    =GetCenterY - 120;
	let imgdoll1=GetCurrentScriptDirectory~"flandoll1.png";

	@Initialize{
	SetLife(1500);
	SetScore(10000);
	SetDamageRate(75,0);

	LoadGraphic(imgdoll1);
	SetTexture(imgdoll1);
	SetGraphicRect(0,0,63,63);
	Shot();
	Move();
	SetMovePosition02(xini,yini,60);
	}

	@MainLoop{
	SetCollisionA(GetX,GetY,16);
	SetCollisionB(GetX,GetY,8);
	yield;
	}

	@DrawLoop{
	DrawGraphic(GetX,GetY);
	}

	@Finalize{
	DeleteGraphic(imgdoll1);
	}

	task BreakShot2(minangle,addangle,way,atk1,atk2){
	let i=minangle;
	let rate = [7,26,192,63,169,51,103,134,13,38,116,147,10,44,184,162,100,72,155,85,141,89,15,129,57,121,118,160,0,32,77,187,128,91,30,96,69,53,176,94,125,49,172,173,197,153,23,41,8,94,114,97,191,105,91,110,80,140,112,73,189,144,64,67,36,165,137,142,163,87,19,193,106,47,21,66,151,180,2,198,132,108,88,136,29,43,55,54,82,93,123,140,39,18,76,131,126,43,92,145,62,1,27,115,153,181,24,74,101,31,195,167,117,5,157,177,48,178,17,133,186,135,45,99,111,199,9,59,71,156,120,20,42,166,65,56,182,138,159,61,178,174,22,68,104,148,130,60,175,4,11,171,81,161,28,83,143,168,37,58,170,152,124,75,14,194,132,139,90,46,164,109,84,6,79,200,158,78,12,146,86,33,102,198,149,185,52,183,127,95,196,70,3,113,122,35,117,190,98,16,188,30,107,154,179,25,188,50,119];
	let a = rand_int(0,90);
	let b = rand_int(0,180);
	loop(way){
	let shot1=1;
	CreateShotA(shot1,GetX(),GetY(),30);
	SetShotDataA(shot1,0,1.5,i,0,0,0,RED02);
	let j = 0;
		while(j<= atk1){let shot2=2;
		if(a >= length(rate)){a -= length(rate);}
		CreateShotA(shot2,0,0,10);
		SetShotDataA(shot2,0,rand(0.1,0.3),360*rate[a]/200,0,rand(0,0.05),3,RED04);
		j++;
		a++;
			let k = 0;
			while(k<= atk2){
			if(b >= length(rate)){b -= length(rate);}
			let shot3=3;
			CreateShotA(shot3,0,0,10);
			SetShotDataA(shot3,0,rand(0.1,0.3),360*rate[b]/200,0,rand(0,0.05),3,RED23);
			k++;
			b++;
			AddShot(45,shot2,shot3,0);
			SetShotKillTime(shot2,46);
			}
		AddShot(45,shot1,shot2,0);}
	SetShotKillTime(shot1,46);
	FireShot(shot1);
	i+=addangle;}
	loop(90){yield;}
	}

	task Shot(){
	let angle;
	loop{
	loop(150){yield;}
	BreakShot2(90,90,1,4,6);
	loop(10){
	loop(60){yield;}
	angle = rand(0,360);
	loop(12){
	DefenceBombShot01(GetX,GetY,2,angle,WHITE23,0);
	DefenceBombShot01(GetX,GetY,2.5,angle,WHITE23,0);
	angle += 30;
	}
	}
	}
	}

	task Move{
	loop(60){yield;}
	loop{
	loop(100){yield;}
	SetMovePositionRandom01(rand(0,32),rand(0,32),2,GetClipMinX+32,GetClipMinY+32,GetClipMaxX-32,120);
	}
	}
}

script_enemy DOLL2
{
#include_function ".\th[.txt"


	//ʒu
	let xini    =GetX;
	let yini    =GetCenterY - 120;
	let imgdoll2=GetCurrentScriptDirectory~"flandoll2.png";

	@Initialize{
	SetLife(1500);
	SetScore(10000);
	SetDamageRate(75,0);

	LoadGraphic(imgdoll2);
	SetTexture(imgdoll2);
	SetGraphicRect(0,0,63,63);
	Shot();
	Move();
	SetMovePosition02(xini,yini,60);
	}

	@MainLoop{
	SetCollisionA(GetX,GetY,16);
	SetCollisionB(GetX,GetY,8);
	yield;
	}

	@DrawLoop{
	DrawGraphic(GetX,GetY);
	}

	@Finalize{
	DeleteGraphic(imgdoll2);
	}

	task BreakShot2(minangle,addangle,way,atk1,atk2){
	let i=minangle;
	let rate = [7,26,192,63,169,51,103,134,13,38,116,147,10,44,184,162,100,72,155,85,141,89,15,129,57,121,118,160,0,32,77,187,128,91,30,96,69,53,176,94,125,49,172,173,197,153,23,41,8,94,114,97,191,105,91,110,80,140,112,73,189,144,64,67,36,165,137,142,163,87,19,193,106,47,21,66,151,180,2,198,132,108,88,136,29,43,55,54,82,93,123,140,39,18,76,131,126,43,92,145,62,1,27,115,153,181,24,74,101,31,195,167,117,5,157,177,48,178,17,133,186,135,45,99,111,199,9,59,71,156,120,20,42,166,65,56,182,138,159,61,178,174,22,68,104,148,130,60,175,4,11,171,81,161,28,83,143,168,37,58,170,152,124,75,14,194,132,139,90,46,164,109,84,6,79,200,158,78,12,146,86,33,102,198,149,185,52,183,127,95,196,70,3,113,122,35,117,190,98,16,188,30,107,154,179,25,188,50,119];
	let a = rand_int(0,90);
	let b = rand_int(0,180);
	loop(way){
	let shot1=1;
	CreateShotA(shot1,GetX(),GetY(),30);
	SetShotDataA(shot1,0,1.5,i,0,0,0,RED02);
	let j = 0;
		while(j<= atk1){let shot2=2;
		if(a >= length(rate)){a -= length(rate);}
		CreateShotA(shot2,0,0,10);
		SetShotDataA(shot2,0,rand(0.1,0.3),360*rate[a]/200,0,rand(0,0.05),3,RED04);
		j++;
		a++;
			let k = 0;
			while(k<= atk2){
			if(b >= length(rate)){b -= length(rate);}
			let shot3=3;
			CreateShotA(shot3,0,0,10);
			SetShotDataA(shot3,0,rand(0.1,0.3),360*rate[b]/200,0,rand(0,0.05),3,RED23);
			k++;
			b++;
			AddShot(45,shot2,shot3,0);
			SetShotKillTime(shot2,46);
			}
		AddShot(45,shot1,shot2,0);}
	SetShotKillTime(shot1,46);
	FireShot(shot1);
	i+=addangle;}
	loop(90){yield;}
	}

	task Shot(){
	let angle;
	loop{
	loop(150){yield;}
	BreakShot2(90,90,1,4,6);
	loop(10){
	loop(60){yield;}
	angle = rand(0,360);
	loop(12){
	DefenceBombShot01(GetX,GetY,2,angle,WHITE23,0);
	DefenceBombShot01(GetX,GetY,2.5,angle,WHITE23,0);
	angle += 30;
	}
	}
	}
	}

	task Move{
	loop(60){yield;}
	loop{
	loop(100){yield;}
	SetMovePositionRandom01(rand(0,32),rand(0,32),2,GetClipMinX+32,GetClipMinY+32,GetClipMaxX-32,120);
	}
	}
}

script_enemy DOLL3
{
#include_function ".\th[.txt"


	//ʒu
	let xini    =GetX;
	let yini    =GetCenterY - 120;
	let imgdoll3=GetCurrentScriptDirectory~"flandoll3.png";

	@Initialize{
	SetLife(1500);
	SetScore(10000);
	SetDamageRate(75,0);

	LoadGraphic(imgdoll3);
	SetTexture(imgdoll3);
	SetGraphicRect(0,0,63,63);
	Shot();
	Move();
	SetMovePosition02(xini,yini,60);
	}

	@MainLoop{
	SetCollisionA(GetX,GetY,16);
	SetCollisionB(GetX,GetY,8);
	yield;
	}

	@DrawLoop{
	DrawGraphic(GetX,GetY);
	}

	@Finalize{
	DeleteGraphic(imgdoll3);
	}

	task BreakShot2(minangle,addangle,way,atk1,atk2){
	let i=minangle;
	let rate = [7,26,192,63,169,51,103,134,13,38,116,147,10,44,184,162,100,72,155,85,141,89,15,129,57,121,118,160,0,32,77,187,128,91,30,96,69,53,176,94,125,49,172,173,197,153,23,41,8,94,114,97,191,105,91,110,80,140,112,73,189,144,64,67,36,165,137,142,163,87,19,193,106,47,21,66,151,180,2,198,132,108,88,136,29,43,55,54,82,93,123,140,39,18,76,131,126,43,92,145,62,1,27,115,153,181,24,74,101,31,195,167,117,5,157,177,48,178,17,133,186,135,45,99,111,199,9,59,71,156,120,20,42,166,65,56,182,138,159,61,178,174,22,68,104,148,130,60,175,4,11,171,81,161,28,83,143,168,37,58,170,152,124,75,14,194,132,139,90,46,164,109,84,6,79,200,158,78,12,146,86,33,102,198,149,185,52,183,127,95,196,70,3,113,122,35,117,190,98,16,188,30,107,154,179,25,188,50,119];
	let a = rand_int(0,90);
	let b = rand_int(0,180);
	loop(way){
	let shot1=1;
	CreateShotA(shot1,GetX(),GetY(),30);
	SetShotDataA(shot1,0,1.5,i,0,0,0,RED02);
	let j = 0;
		while(j<= atk1){let shot2=2;
		if(a >= length(rate)){a -= length(rate);}
		CreateShotA(shot2,0,0,10);
		SetShotDataA(shot2,0,rand(0.1,0.3),360*rate[a]/200,0,rand(0,0.05),3,RED04);
		j++;
		a++;
			let k = 0;
			while(k<= atk2){
			if(b >= length(rate)){b -= length(rate);}
			let shot3=3;
			CreateShotA(shot3,0,0,10);
			SetShotDataA(shot3,0,rand(0.1,0.3),360*rate[b]/200,0,rand(0,0.05),3,RED23);
			k++;
			b++;
			AddShot(45,shot2,shot3,0);
			SetShotKillTime(shot2,46);
			}
		AddShot(45,shot1,shot2,0);}
	SetShotKillTime(shot1,46);
	FireShot(shot1);
	i+=addangle;}
	loop(90){yield;}
	}

	task Shot(){
	let angle;
	loop{
	loop(150){yield;}
	BreakShot2(90,90,1,4,6);
	loop(10){
	loop(60){yield;}
	angle = rand(0,360);
	loop(12){
	DefenceBombShot01(GetX,GetY,2,angle,WHITE23,0);
	DefenceBombShot01(GetX,GetY,2.5,angle,WHITE23,0);
	angle += 30;
	}
	}
	}
	}

	task Move{
	loop(60){yield;}
	loop{
	loop(100){yield;}
	SetMovePositionRandom01(rand(0,32),rand(0,32),2,GetClipMinX+32,GetClipMinY+32,GetClipMaxX-32,120);
	}
	}
}

script_enemy_main
{
#include_function ".\th[.txt"


	let name    = "֒euj̐l`v";

	//ʒu
	let xini    =GetCenterX - 70;
	let yini    =GetCenterY - 120;

	@Initialize{
	CutIn(YOUMU,name,"",0,0,0,0);
	SetX(xini);
	SetY(yini);
	SetLife(1500);
	SetTimer(100);
	SetScore(5000000);
	SetDamageRate(15,0);
	SetInvincibility(300);

	LoadGraphic(imgboss);
	SetTexture(imgboss);
	SetGraphicRect(0,0,127,127);
	Shot();
	AppearanceDolls();
	}

	@MainLoop{
	if(OnBomb() == false){
	SetCollisionA(GetX,GetY,48);
	SetCollisionB(GetX,GetY,24);}
	yield;
	}

	@DrawLoop{
	DrawGraphic(GetX,GetY);
	}

	@Finalize{
	DeleteGraphic(imgboss);
	}

	task BreakShot2(minangle,addangle,way,atk1,atk2){
	let i=minangle;
	let rate = [7,26,192,63,169,51,103,134,13,38,116,147,10,44,184,162,100,72,155,85,141,89,15,129,57,121,118,160,0,32,77,187,128,91,30,96,69,53,176,94,125,49,172,173,197,153,23,41,8,94,114,97,191,105,91,110,80,140,112,73,189,144,64,67,36,165,137,142,163,87,19,193,106,47,21,66,151,180,2,198,132,108,88,136,29,43,55,54,82,93,123,140,39,18,76,131,126,43,92,145,62,1,27,115,153,181,24,74,101,31,195,167,117,5,157,177,48,178,17,133,186,135,45,99,111,199,9,59,71,156,120,20,42,166,65,56,182,138,159,61,178,174,22,68,104,148,130,60,175,4,11,171,81,161,28,83,143,168,37,58,170,152,124,75,14,194,132,139,90,46,164,109,84,6,79,200,158,78,12,146,86,33,102,198,149,185,52,183,127,95,196,70,3,113,122,35,117,190,98,16,188,30,107,154,179,25,188,50,119];
	let a = rand_int(0,90);
	let b = rand_int(0,180);
	loop(way){
	let shot1=1;
	CreateShotA(shot1,GetX(),GetY(),30);
	SetShotDataA(shot1,0,1.5,i,0,0,0,RED02);
	let j = 0;
		while(j<= atk1){let shot2=2;
		if(a >= length(rate)){a -= length(rate);}
		CreateShotA(shot2,0,0,10);
		SetShotDataA(shot2,0,rand(0.1,0.3),360*rate[a]/200,0,rand(0,0.05),3,RED04);
		j++;
		a++;
			let k = 0;
			while(k<= atk2){
			if(b >= length(rate)){b -= length(rate);}
			let shot3=3;
			CreateShotA(shot3,0,0,10);
			SetShotDataA(shot3,0,rand(0.1,0.3),360*rate[b]/200,0,rand(0,0.05),3,RED23);
			k++;
			b++;
			AddShot(45,shot2,shot3,0);
			SetShotKillTime(shot2,46);
			}
		AddShot(45,shot1,shot2,0);}
	SetShotKillTime(shot1,46);
	FireShot(shot1);
	i+=addangle;}
	loop(90){yield;}
	}

	task Shot(){
	let angle;
	loop{
	loop(250){yield;}
	BreakShot2(45,90,2,4,6);
	loop(3){
	loop(60){yield;}
	angle = rand(0,360);
	loop(18){
	DefenceBombShot01(GetX,GetY,2,angle,WHITE23,0);
	DefenceBombShot01(GetX,GetY,2.5,angle,WHITE23,0);
	angle += 20;
	}
	}
	}
	}

	task AppearanceDolls(){
	loop(100){yield;}
	CreateEnemyFromScript("DOLL1",104,GetClipMinY,0,0,0);
	CreateEnemyFromScript("DOLL2",382,GetClipMinY,0,0,0);
	CreateEnemyFromScript("DOLL3",282,GetClipMinY,0,0,0);
	}

}